Daniel van Vugt [Sun, 18 Mar 2018 16:56:36 +0000 (12:56 -0400)]
backends/x11: Support input-synaptics, if present.
Add support for configuring the Xorg synaptics touchpad driver.
Turns out it's very simple to support both libinput and synaptics
simultaneously, both under the heading of XI2.
Bug-Ubuntu: https://launchpad.net/bugs/1686081
Forwarded: https://gitlab.gnome.org/GNOME/mutter/merge_requests/37
Applied-upstream: no, rejected as not long-term sustainable
Last-Update: 2018-03-16
Gbp-Pq: Topic debian
Gbp-Pq: Name synaptics-support.patch
Florian Müllner [Thu, 20 Oct 2016 16:00:04 +0000 (18:00 +0200)]
gtk-shell: Work around non-working startup notifications
GNOME Shell relies on the MetaScreen::startup-sequence-changed signal,
which is tied to (lib)startup-notification and therefore X11. As a result,
when we remove the startup sequence of a wayland client, GNOME Shell will
not be notified about this until startup-notification's timeout is hit.
As a temporary stop-gap, go through XWayland even for wayland clients,
so that the signal is emitted when expected.
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=768531
Applied-upstream: no
Gbp-Pq: Name bgo768531_workaround-startup-notifications.patch
Daniel van Vugt [Fri, 16 Feb 2018 08:50:59 +0000 (02:50 -0600)]
clutter: Smooth out master clock to smooth visuals
Clutter's master clock was jittery because it included errors in cur_tick
such as dispatch delays due to other sources. Dispatch could also occur up
to 1ms early since GSource can only be timed to the millisecond. All of this
could impact the visual smoothness of animations as they are displayed on
the steady interval of the monitor, but spacially moving in less regular
steps derived from the dispatch times.
The simple fix is to ignore any jitter in dispatch timing. Try a little
bit harder to use a precise interval that will better match the display
hardware, and smoother visuals will follow.
Daniel van Vugt [Sun, 18 Mar 2018 16:56:36 +0000 (12:56 -0400)]
backends/x11: Support input-synaptics, if present.
Add support for configuring the Xorg synaptics touchpad driver.
Turns out it's very simple to support both libinput and synaptics
simultaneously, both under the heading of XI2.
Bug-Ubuntu: https://launchpad.net/bugs/1686081
Forwarded: https://gitlab.gnome.org/GNOME/mutter/merge_requests/37
Applied-upstream: no, rejected as not long-term sustainable
Last-Update: 2018-03-16
Gbp-Pq: Topic debian
Gbp-Pq: Name synaptics-support.patch
Florian Müllner [Thu, 20 Oct 2016 16:00:04 +0000 (18:00 +0200)]
gtk-shell: Work around non-working startup notifications
GNOME Shell relies on the MetaScreen::startup-sequence-changed signal,
which is tied to (lib)startup-notification and therefore X11. As a result,
when we remove the startup sequence of a wayland client, GNOME Shell will
not be notified about this until startup-notification's timeout is hit.
As a temporary stop-gap, go through XWayland even for wayland clients,
so that the signal is emitted when expected.
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=768531
Applied-upstream: no
Gbp-Pq: Name bgo768531_workaround-startup-notifications.patch
Daniel van Vugt [Fri, 16 Feb 2018 08:50:59 +0000 (02:50 -0600)]
clutter: Smooth out master clock to smooth visuals
Clutter's master clock was jittery because it included errors in cur_tick
such as dispatch delays due to other sources. Dispatch could also occur up
to 1ms early since GSource can only be timed to the millisecond. All of this
could impact the visual smoothness of animations as they are displayed on
the steady interval of the monitor, but spacially moving in less regular
steps derived from the dispatch times.
The simple fix is to ignore any jitter in dispatch timing. Try a little
bit harder to use a precise interval that will better match the display
hardware, and smoother visuals will follow.
device-manager-evdev: Add main seat to seats by default
Treat the main seat as other seats, so we don't have to handle it differently
in specific places. This was already the case before when a real device
was plugged before the startup, but not applied when hotplugging a device.
device-manager-evdev: Set and unset the stage for the main seat too
When no input devices are available on startup the device manager might be fast
enough to be constructed so that no default stage is set yet, and thus when
main seat virtual devices are created they won't have a proper stage set.
If then we plug a real device, the events that an input manager could generate
won't be associated to any stage and thus won't be processed.
We need then ensure that when we update the stage for the device manager we
(un)associate it also to the main seat devices.
clutter-device-evdev: Get devices from main seat if no real seat is set
In devices such as ARM boards there could be no input devices connected on
startup, leading to a crash when we try to process artificial events that
could be queued (as gnome-shell does when syncing pointer).
Those events still should refer to a device and, in case we don't have one
provided by libinput we should still return the core devices defined in the
main seat.
Compositor effects change the actor size and position, which can lead to
inconsistent output enter/leave notifications, leaving clients' surfaces
without any output set.
Update output enter/leave notifications after all compositor effects are
completed so that we give clients accurate output location.
When using plugins, the effects will affect the MetaWindowActor size
and position.
Add a new signal "effects-completed" wired to the corresponding
MetaWindowActor which is emitted when all effects are completed so that
derived objects can be notified when all effects are completed and use
the actual size and position.
After 20176d03, the Wayland backend only synchronizes with the
compositor after a geometry was set, and it was different from
the current geometry.
That commit was mistakenly comparing the geometry before chaining
up, which would yield a false negative on the case where the
client didn't call set_geometry() before commit().
Fix that by caching the old geometry locally, chain up (and thus
apply the new geometry rectangle), then comparing the old and
current geometry rectangles.
Carlos Garnacho [Sun, 15 Apr 2018 14:26:32 +0000 (16:26 +0200)]
frames: Handle touch events
This is just done on wayland as it'll break horribly on X11, we let
this happen through pointer emulated events in XISelectEvents evmask
instead.
Some things had to be made slightly more generic to accomodate touch
events. The MetaFrames shall lock onto a single touch at a time, we
don't allow crazy stuff like multi-window drag nor multi-edge resizes.
Mark CAPS lock as a modifier (as it should) so that when using XKB
options to change the default behaviour of CAPS lock, the new assigned
key can by used as a sticky key as well.
Olivier Fourdan [Fri, 23 Mar 2018 12:05:12 +0000 (13:05 +0100)]
wayland: Use cursor position in logical monitor
When using two monitors size by side with different scales, once the
cursor moves from one output to another one, its size changes based on
the scale of the given output.
Changing the size of the cursor can cause the cursor area to change
output again if the hotspot is not exactly at the top left corner of the
area, causing the texture of the cursor to change, which will trigger
another output change, so on and so forth causing continuous surface
enter/leave event which flood the clients and eventually kill them.
Change the logic to use only the actual cursor position to determine if
its on the given logical monitor, so that it remains immune to scale
changes induced by output scale differences.
Simon McVittie [Sun, 8 Jul 2018 10:32:56 +0000 (11:32 +0100)]
mutter (3.28.2-3) unstable; urgency=medium
* Team upload
* d/p/backends-Move-MetaOutput-crtc-field-into-private-struct.patch,
d/p/backends-Add-logical-monitor-monitor-output-crtc-ref-chai.patch:
Mark as applied upstream
* d/p/backends-Move-MetaOutput-crtc-field-into-private-struct.patch:
Update to the version that was applied upstream
* d/p/frames-Handle-touch-events.patch,
d/p/frames-Make-1st-button-motion-handlers-take-generic-event.patch,
d/p/frames-Allow-for-unknown-mouse-buttons.patch:
Reinstate patches dropped in previous upload, along with the
upstream fix for #899181
* d/p/wayland-Compare-geometries-after-chaining-up.patch,
d/p/window-actor-add-new-signal-effects-completed.patch,
d/p/wayland-update-enter-leave-output-after-effects.patch,
d/p/frames-Allow-for-unknown-mouse-buttons.patch,
d/p/wayland-Don-t-reset-input-focus-on-text-commit.patch,
d/p/clutter-seat-evdev-Add-function-to-get-device-by-id.patch,
d/p/clutter-device-evdev-Get-devices-from-main-seat-if-no-rea.patch,
d/p/device-manager-evdev-Set-and-unset-the-stage-for-the-main.patch,
d/p/device-manager-evdev-Free-the-main-seat-on-finalize.patch,
d/p/device-manager-evdev-Add-main-seat-to-seats-by-default.patch,
d/p/renderer-native-Don-t-crash-if-the-FB-surface-can-t-be-lo.patch:
Update to upstream gnome-3-28 branch
* Add a symbols file for libmutter-2-0
* d/copyright: Copy many licenses and copyright holders into this file,
multiplying its length by 5 (Closes: #891156)
Daniel van Vugt [Sun, 18 Mar 2018 16:56:36 +0000 (12:56 -0400)]
backends/x11: Support input-synaptics, if present.
Add support for configuring the Xorg synaptics touchpad driver.
Turns out it's very simple to support both libinput and synaptics
simultaneously, both under the heading of XI2.
Bug-Ubuntu: https://launchpad.net/bugs/1686081
Forwarded: https://gitlab.gnome.org/GNOME/mutter/merge_requests/37
Applied-upstream: no, rejected as not long-term sustainable
Last-Update: 2018-03-16
Gbp-Pq: Topic debian
Gbp-Pq: Name synaptics-support.patch
Florian Müllner [Thu, 20 Oct 2016 16:00:04 +0000 (18:00 +0200)]
gtk-shell: Work around non-working startup notifications
GNOME Shell relies on the MetaScreen::startup-sequence-changed signal,
which is tied to (lib)startup-notification and therefore X11. As a result,
when we remove the startup sequence of a wayland client, GNOME Shell will
not be notified about this until startup-notification's timeout is hit.
As a temporary stop-gap, go through XWayland even for wayland clients,
so that the signal is emitted when expected.
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=768531
Applied-upstream: no
Gbp-Pq: Name bgo768531_workaround-startup-notifications.patch
Clutter's master clock was jittery because it included errors in cur_tick
such as dispatch delays due to other sources. Dispatch could also occur up
to 1ms early since GSource can only be timed to the millisecond. All of this
could impact the visual smoothness of animations as they are displayed on
the steady interval of the monitor, but spacially moving in less regular
steps derived from the dispatch times.
The simple fix is to ignore any jitter in dispatch timing. Try a little
bit harder to use a precise interval that will better match the display
hardware, and smoother visuals will follow.
https://gitlab.gnome.org/GNOME/mutter/issues/25
Gbp-Pq: Name clutter-Smooth-out-master-clock-to-smooth-visuals.patch
Mark CAPS lock as a modifier (as it should) so that when using XKB
options to change the default behaviour of CAPS lock, the new assigned
key can by used as a sticky key as well.
Olivier Fourdan [Fri, 23 Mar 2018 12:05:12 +0000 (13:05 +0100)]
wayland: Use cursor position in logical monitor
When using two monitors size by side with different scales, once the
cursor moves from one output to another one, its size changes based on
the scale of the given output.
Changing the size of the cursor can cause the cursor area to change
output again if the hotspot is not exactly at the top left corner of the
area, causing the texture of the cursor to change, which will trigger
another output change, so on and so forth causing continuous surface
enter/leave event which flood the clients and eventually kill them.
Change the logic to use only the actual cursor position to determine if
its on the given logical monitor, so that it remains immune to scale
changes induced by output scale differences.
Simon McVittie [Sun, 20 May 2018 14:21:35 +0000 (15:21 +0100)]
mutter (3.28.2-2) unstable; urgency=medium
* Team upload
* d/p/frames-Handle-touch-events.patch,
d/p/frames-Make-1st-button-motion-handlers-take-generic-event.patch:
Drop cherry-picked patches that caused a regression (Closes: #899181)
Ray Strode [Thu, 12 Apr 2018 18:06:01 +0000 (13:06 -0500)]
xwayland: Don't abort if Xwayland crashes
Right now if Xwayland crashes, we crash, too.
On some level that makes sense, since we're supposed to control the
lifecycle of Xwayland, and by it crashing we've lost that control.
But practically speaking, the knock-on crash adds noise to the logs,
bug trackers, and retrace servers that only makes debugging harder.
And the crash isn't something mutter can "fix", since it's
ultimately from a bug in Xwayland anyway.
This commit makes mutter exit instead of crash if Xwayland goes away
unexpectedly.
Ray Strode [Thu, 12 Apr 2018 18:03:03 +0000 (13:03 -0500)]
xwayland: use g_autoptr for GError in xserver_died
Right now we explicitly g_clear_error any error we find, but that
makes it tricky to return early from the function, which a
subsequent commit will want to to do.
This commit switches GError to use g_autoptr so the error clearing
happens automatically.
Clutter's master clock was jittery because it included errors in cur_tick
such as dispatch delays due to other sources. Dispatch could also occur up
to 1ms early since GSource can only be timed to the millisecond. All of this
could impact the visual smoothness of animations as they are displayed on
the steady interval of the monitor, but spacially moving in less regular
steps derived from the dispatch times.
The simple fix is to ignore any jitter in dispatch timing. Try a little
bit harder to use a precise interval that will better match the display
hardware, and smoother visuals will follow.
https://gitlab.gnome.org/GNOME/mutter/issues/25
Gbp-Pq: Name clutter-Smooth-out-master-clock-to-smooth-visuals.patch
Gtk now is caching the themed cairo surfaces, then as per
commit gtk@e36b629c the surface device scale is used to figure
out the current paint scaling.
Without this when using background-image's for window buttons
the -gtk-scaled icons isn't properly resized.
Fixes #99
Gbp-Pq: Name theme-frames-Use-surface-device-scale-instead-of-cairo_sc.patch
Florian Müllner [Thu, 20 Oct 2016 16:00:04 +0000 (18:00 +0200)]
gtk-shell: Work around non-working startup notifications
GNOME Shell relies on the MetaScreen::startup-sequence-changed signal,
which is tied to (lib)startup-notification and therefore X11. As a result,
when we remove the startup sequence of a wayland client, GNOME Shell will
not be notified about this until startup-notification's timeout is hit.
As a temporary stop-gap, go through XWayland even for wayland clients,
so that the signal is emitted when expected.
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=768531
Applied-upstream: no
Gbp-Pq: Name bgo768531_workaround-startup-notifications.patch
* Add xwayland-use-g_autoptr-for-GError-in-xserver_died.patch,
xwayland-Don-t-abort-if-Xwayland-crashes.patch:
- Cherry picked from upstream, to reduce noise of mutter on crashes
which are actually caused by XWayland (LP: #1748450)
Clutter's master clock was jittery because it included errors in cur_tick
such as dispatch delays due to other sources. Dispatch could also occur up
to 1ms early since GSource can only be timed to the millisecond. All of this
could impact the visual smoothness of animations as they are displayed on
the steady interval of the monitor, but spacially moving in less regular
steps derived from the dispatch times.
The simple fix is to ignore any jitter in dispatch timing. Try a little
bit harder to use a precise interval that will better match the display
hardware, and smoother visuals will follow.
https://gitlab.gnome.org/GNOME/mutter/issues/25
Gbp-Pq: Name clutter-Smooth-out-master-clock-to-smooth-visuals.patch
Gtk now is caching the themed cairo surfaces, then as per
commit gtk@e36b629c the surface device scale is used to figure
out the current paint scaling.
Without this when using background-image's for window buttons
the -gtk-scaled icons isn't properly resized.
Fixes #99
Gbp-Pq: Name theme-frames-Use-surface-device-scale-instead-of-cairo_sc.patch
Florian Müllner [Thu, 20 Oct 2016 16:00:04 +0000 (18:00 +0200)]
gtk-shell: Work around non-working startup notifications
GNOME Shell relies on the MetaScreen::startup-sequence-changed signal,
which is tied to (lib)startup-notification and therefore X11. As a result,
when we remove the startup sequence of a wayland client, GNOME Shell will
not be notified about this until startup-notification's timeout is hit.
As a temporary stop-gap, go through XWayland even for wayland clients,
so that the signal is emitted when expected.
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=768531
Applied-upstream: no
Gbp-Pq: Name bgo768531_workaround-startup-notifications.patch
Florian Müllner [Thu, 20 Oct 2016 16:00:04 +0000 (18:00 +0200)]
gtk-shell: Work around non-working startup notifications
GNOME Shell relies on the MetaScreen::startup-sequence-changed signal,
which is tied to (lib)startup-notification and therefore X11. As a result,
when we remove the startup sequence of a wayland client, GNOME Shell will
not be notified about this until startup-notification's timeout is hit.
As a temporary stop-gap, go through XWayland even for wayland clients,
so that the signal is emitted when expected.
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=768531
Applied-upstream: no
Gbp-Pq: Name bgo768531_workaround-startup-notifications.patch